Setup

library(repro)
# # load packages from yaml header
# automate_load_packages()
# # include external scripts
# automate_load_scripts()

# load data
data_ambroise_full   <- haven::read_sav("Enquete_Ambroise.sav")

pacman::p_load(papaja, tinylabels, apaTables, haven, ggplot2,  tidyverse, gtsummary, car, GGally, MASS, matrixStats, rcompanion, moments, utils, sjPlot, interactions, kableExtra)

sessio = sessionInfo(); #opts_chunk$set(echo = F, message=F, warning=F) # set echo F for all

This file was automatically created via the Repro package (version 0.1.0) using R version 4.0.1 (2020-06-06)

options(scipen = 666, warn=-1, contrasts=c("contr.sum","contr.poly"), knitr.kable.NA = '')  #remove scientific notation # remove warnings #set contrasts to sum ! 
set.seed(666) #set random seed

# panderOptions('knitr.auto.asis', FALSE) #remove auto styling

# Look at R/clean.R (listed in the YAML) which does all the preprocessing for more info


# If you are unsure weather or not you have `git` `make` & `docker`.
# check_git()
# check_make()
# check_docker()

Introduction

Blabla

Demographics

base[c("Age", "Gender", "Profession")] %>%  tbl_summary(statistic = list(all_continuous() ~ "{mean} ({sd})", all_categorical() ~ "{n} / {N} ({p}%)"),)  %>% modify_caption("**Table 1. Demographics **") %>%
  bold_labels()
**Table 1. Demographics **
Characteristic N = 3031
Age 21.7 (4.4)
Gender
Homme 56 / 303 (18%)
Femme 244 / 303 (81%)
Autre/NA 3 / 303 (1.0%)
Profession
Etudiant.e 298 / 303 (98%)
Actif.ve 3 / 303 (1.0%)
Les deux 2 / 303 (0.7%)

1 Mean (SD); n / N (%)

base[c("Decision Mode")] %>%  tbl_summary(statistic = list(all_continuous() ~ "{mean} ({sd})", all_categorical() ~ "{n} / {N} ({p}%)"),)   %>% modify_caption("**Table 2. Decision Mode **") %>%
  bold_labels()
**Table 2. Decision Mode **
Characteristic N = 3031
Decision Mode
Affectif 32 / 303 (11%)
Les deux 208 / 303 (69%)
Cognitif 63 / 303 (21%)

1 n / N (%)

\(~\) \(~\)

base_clean[c("Age", "Gender", "Profession")] %>%  tbl_summary(statistic = list(all_continuous() ~ "{mean} ({sd})", all_categorical() ~ "{n} / {N} ({p}%)"),)  %>% modify_caption("**Table 3. Demographics after cleaning**") %>%
  bold_labels()
Table 3. Demographics after cleaning
Characteristic N = 2961
Age 21.8 (4.3)
Gender
Homme 55 / 296 (19%)
Femme 239 / 296 (81%)
Autre/NA 2 / 296 (0.7%)
Profession
Etudiant.e 291 / 296 (98%)
Actif.ve 3 / 296 (1.0%)
Les deux 2 / 296 (0.7%)

1 Mean (SD); n / N (%)

base_clean[c("Decision Mode")] %>%  tbl_summary(statistic = list(all_continuous() ~ "{mean} ({sd})", all_categorical() ~ "{n} / {N} ({p}%)"),)   %>% modify_caption("**Table 4. Decision Mode after cleaning**") %>%
  bold_labels()
Table 4. Decision Mode after cleaning
Characteristic N = 2961
Decision Mode
Affectif 32 / 296 (11%)
Les deux 202 / 296 (68%)
Cognitif 62 / 296 (21%)

1 n / N (%)

\(~\) \(~\)

Statistics

\(~\) \(~\)

Price

base_price = base_clean #no huge outliers, see appendix

final_price = lm(Price ~ Priming*Product*score + Age + Decision_mode,  data = base_price)

apa_lm <- apa_print(anova(final_price))
apa_table(apa_lm$table,  caption = "Anova table for Price.")
(#tab:lm Price)
Anova table for Price.
Effect \(\hat{\eta}^2_G\) 90% CI \(F\) \(\mathit{df}\) \(\mathit{df}_{\mathrm{res}}\) \(p\)
Priming .001 [.000, .017] 0.35 1 285 .553
Product .009 [.000, .037] 2.70 1 285 .102
Score .001 [.000, .017] 0.37 1 285 .546
Age .007 [.000, .032] 1.99 1 285 .160
Decision mode .003 [.000, .017] 0.44 2 285 .643
Priming \(\times\) Product .006 [.000, .030] 1.79 1 285 .182
Priming \(\times\) Score .014 [.000, .044] 3.92 1 285 .049
Product \(\times\) Score .001 [.000, .015] 0.24 1 285 .624
Priming \(\times\) Product \(\times\) Score .009 [.000, .035] 2.49 1 285 .116
plot_model(final_price)

interactions::cat_plot(final_price, pred = Priming, modx = Product, interval = TRUE, plot.points = T, point.alpha =0.3, pred.labels = c("Computational","Affective"), modx.labels = c("A+","A++"), errorbar.width = 0.4, y.label = "Price Evaluation")   

interactions::interact_plot(final_price, pred = score, modx = Priming, interval = TRUE, plot.points = T, modx.labels = c("Computational","Affective"), point.alpha =0.3, x.label = "Affective Score towards climate change", y.label = "Price Evaluation")    

interactions::interact_plot(final_price, pred = score, modx = Priming, interval = TRUE, plot.points = F, modx.labels = c("Computational","Affective"), point.alpha =0.3, x.label = "Affective Score towards climate change", y.label = "Price Evaluation")    

\(~\) \(~\)

Example for reporting :

The priming condition (\(F(1, 285) = 0.35\), \(p = .553\), \(\hat{\eta}^2_G = .001\), 90% CI \([.000, .017]\)) and the affective score towards climate change () did not affect price evaluation by themselves. However, the effect of affective score towards climate change on the price evalution slightly differed by priming condition, \(F(1, 285) = 3.92\), \(p = .049\), \(\hat{\eta}^2_G = .014\), 90% CI \([.000, .044]\).

\(~\)

However it is important to note the very small effect size \(\hat{\eta}^2_G = .014\) and that the confidence intervals of the effect size includes 0 90% CI \([.000, .044]\) . \(~\)

Grand biais vers 0 avec les positive affect scale. Resultat pas très interpretable donc… Mais je laisse les deux graphs au cas ou.

\(~\) \(~\)

Probability to buy

base_buy = filter(base_clean, id %notin% c("13804")) #remove huge outliers, see appendix


final_buy = lm(Buy ~ Priming*Product*score + Age + Decision_mode,  data = base_buy)   

apa_lm <- apa_print(anova(final_buy))
apa_table(apa_lm$table,  caption = "Anova table for Probability to buy.")
(#tab:lm Buy)
Anova table for Probability to buy.
Effect \(\hat{\eta}^2_G\) 90% CI \(F\) \(\mathit{df}\) \(\mathit{df}_{\mathrm{res}}\) \(p\)
Priming .000 [.000, .010] 0.06 1 284 .809
Product .037 [.010, .080] 11.01 1 284 .001
Score .001 [.000, .013] 0.15 1 284 .701
Age .034 [.008, .075] 9.88 1 284 .002
Decision mode .000 [.000, .000] 0.04 2 284 .965
Priming \(\times\) Product .000 [.000, .011] 0.08 1 284 .773
Priming \(\times\) Score .010 [.000, .037] 2.74 1 284 .099
Product \(\times\) Score .000 [.000, .012] 0.12 1 284 .728
Priming \(\times\) Product \(\times\) Score .007 [.000, .033] 2.12 1 284 .147
sjPlot::plot_model(final_buy)

interactions::cat_plot(final_buy, pred = Product, interval = TRUE, plot.points = T, point.alpha =0.3, pred.labels = c("A+","A++"), errorbar.width = 0.4, y.label = "Probability to buy")   

sjPlot::plot_model(final_buy, type = "pred", show.data = T)[4]

interactions::cat_plot(final_buy, pred = Priming, modx = Product, interval = TRUE, plot.points = T, point.alpha =0.3, pred.labels = c("Computational","Affective"), modx.labels = c("A+","A++"), errorbar.width = 0.4, y.label = "Probability to buy")   

\(~\) \(~\)

Reccomendation

base_recco = base_clean #no huge outliers, see appendix

final_recco = lm(Reccomend ~ Priming*Product*score + Decision_mode + Age,  data = base_recco)
      

apa_lm <- apa_print(anova(final_recco))
apa_table(apa_lm$table,  caption = "Anova table for Reccomendation.")
(#tab:lm Recco)
Anova table for Reccomendation.
Effect \(\hat{\eta}^2_G\) 90% CI \(F\) \(\mathit{df}\) \(\mathit{df}_{\mathrm{res}}\) \(p\)
Priming .002 [.000, .019] 0.54 1 285 .461
Product .087 [.042, .143] 27.31 1 285 < .001
Score .002 [.000, .019] 0.54 1 285 .463
Decision mode .001 [.000, .002] 0.12 2 285 .885
Age .008 [.000, .035] 2.40 1 285 .122
Priming \(\times\) Product .000 [.000, .000] 0.00 1 285 .982
Priming \(\times\) Score .001 [.000, .017] 0.38 1 285 .537
Product \(\times\) Score .004 [.000, .026] 1.25 1 285 .265
Priming \(\times\) Product \(\times\) Score .007 [.000, .032] 2.04 1 285 .154
plot_model(final_recco)

interactions::cat_plot(final_recco, pred = Product, interval = TRUE, plot.points = T, point.alpha =0.3, pred.labels = c("A+","A++"), errorbar.width = 0.4, y.label = "Reccomendation to buy")  

# sjPlot::plot_model(final_recco, type = "pred", show.data = T)[5]

interactions::cat_plot(final_recco, pred = Priming, modx = Product, interval = TRUE, plot.points = T, point.alpha =0.3, pred.labels = c("Computational","Affective"), modx.labels = c("A+","A++"), errorbar.width = 0.4, y.label = "Reccomendation to buy")  

# interactions::interact_plot(final_recco, pred = negatif_affect, modx = Product, interval = TRUE, plot.points = T, point.alpha =0.3, modx.labels = c("A+","A++"), x.label = "Negative affect towards climate change", y.label = "Reccomendation to buy")  
# 
# interactions::interact_plot(final_recco, pred = negatif_affect, modx = Product, interval = TRUE, plot.points = F, point.alpha =0.3, modx.labels = c("A+","A++"), x.label = "Negative affect towards climate change", y.label = "Reccomendation to buy") 

\(~\) \(~\)

Ecologic Evaluation

base_eco = filter(base_clean, id %notin% c("13594", "11200", "13804", "12529", "11017")) #remove huge outliers, see appendix

final_eco = lm(Ecolo_Eval ~ Priming*Product*score  + Age + Decision_mode,  data = base_eco)

apa_lm <- apa_print(anova(final_eco))
apa_table(apa_lm$table, caption = "Anova table for Ecological evaluation")
(#tab:lm Ecolo_Eval)
Anova table for Ecological evaluation
Effect \(\hat{\eta}^2_G\) 90% CI \(F\) \(\mathit{df}\) \(\mathit{df}_{\mathrm{res}}\) \(p\)
Priming .000 [.000, .000] 0.00 1 280 .961
Product .215 [.149, .283] 76.68 1 280 < .001
Score .001 [.000, .016] 0.26 1 280 .614
Age .000 [.000, .006] 0.02 1 280 .886
Decision mode .015 [.000, .042] 2.11 2 280 .123
Priming \(\times\) Product .003 [.000, .022] 0.75 1 280 .386
Priming \(\times\) Score .010 [.000, .038] 2.82 1 280 .094
Product \(\times\) Score .000 [.000, .000] 0.00 1 280 > .999
Priming \(\times\) Product \(\times\) Score .001 [.000, .016] 0.29 1 280 .594
plot_model(final_eco)

interactions::cat_plot(final_eco, pred = Product, interval = TRUE, plot.points = T, point.alpha =0.3, pred.labels = c("A+","A++"), errorbar.width = 0.4, y.label = "Ecological Evaluation") 

interactions::cat_plot(final_eco, pred = Priming, modx = Product, interval = TRUE, plot.points = T, point.alpha =0.3, pred.labels = c("Computational","Affective"), modx.labels = c("A+","A++"), errorbar.width = 0.4, y.label = "Ecological Evaluation") 

\(~\) \(~\)

Appendix

\(~\) \(~\)

Score of Affect towards climate change

score = -negatif_affect score = score+positive_affect

\(~\) \(~\)

Plot All

base_clean %>%
   keep(is.numeric) %>%
   ggpairs()

\(~\) \(~\)

Check variables densities -> Positive and negative are not really good: to skewed. Score is quite better.¨

\(~\) \(~\)

# base_priceA = dplyr::filter(base_price, Product == "A++")
# 
# final_priceA = lm(Price ~ Priming*Decision_mode + Age,  data = base_priceA)
# 
# apa_lm <- apa_print(anova(final_priceA))
# apa_table(apa_lm$table,  caption = "Anova table for Price with only A++ product.")
# plot_model(final_priceA)
# 
# interactions::cat_plot(final_priceA, pred = Priming, interval = TRUE, plot.points = T, point.alpha =0.3, pred.labels = c("Computational","Affective"), errorbar.width = 0.4, y.label = "Price Evaluation")    

\(~\) \(~\)

# base_buyA = filter(base_buy, Product == "A++")
# 
# final_buyA = lm(Buy ~ Priming*Decision_mode + Age ,  data = base_buyA)
# 
# apa_lm <- apa_print(anova(final_buyA))
# apa_table(apa_lm$table,  caption = "Anova table for Probability to buy only A++ product.")
# plot_model(final_buyA)
# 
# interactions::cat_plot(final_buyA, pred = Priming, interval = TRUE, plot.points = T, point.alpha =0.3, pred.labels = c("Computational","Affective"), errorbar.width = 0.4, y.label = "Probability to buy")   

\(~\) \(~\)

# base_reccoA = filter(base_recco, Product == "A++")
# 
# final_reccoA = lm(Reccomend ~ Priming*Decision_mode + Age,  data = base_reccoA)
# 
# apa_lm <- apa_print(anova(final_reccoA))
# apa_table(apa_lm$table,  caption = "Anova table for Reccomendation to buy only A++ product.")
# plot_model(final_reccoA)
# 
# interactions::cat_plot(final_reccoA, pred = Priming, interval = TRUE, plot.points = T, point.alpha =0.3, pred.labels = c("Computational","Affective"), errorbar.width = 0.4, y.label = "Reccomendation to buy") 

\(~\) \(~\)

# base_ecoA = filter(base_eco, Product == "A++")
# 
# 
# final_ecoA = lm(Ecolo_Eval ~ Priming*Decision_mode  + Age,  data = base_ecoA)
# 
# apa_lm <- apa_print(anova(final_ecoA))
# apa_table(apa_lm$table, caption = "Anova table for Ecological evaluation only A++ product")
# plot_model(final_ecoA)
# 
# interactions::cat_plot(final_ecoA, pred = Priming, interval = TRUE, plot.points = T, point.alpha =0.3, pred.labels = c("Computational","Affective"), errorbar.width = 0.4, y.label = "Price Evaluation")    

\(~\) \(~\)

Correlation between affects towars climate change

\(~\) \(~\)

Test frequencies between priming groups (Positive affect)

Summary statistics
Characteristic 1, N = 1701 2, N = 591 3, N = 251 4, N = 241 5, N = 161 6, N = 11 7, N = 11 p-value2
Priming 0.2
0 89 (52%) 33 (56%) 13 (52%) 9 (38%) 4 (25%) 1 (100%) 1 (100%)
1 81 (48%) 26 (44%) 12 (48%) 15 (62%) 12 (75%) 0 (0%) 0 (0%)

1 n (%)

2 Fisher's exact test

\(~\) \(~\)

Test frequencies between priming groups (Negative affect)

Summary statistics
Characteristic 1, N = 101 2, N = 91 3, N = 111 4, N = 321 5, N = 611 6, N = 991 7, N = 741 p-value2
Priming 0.2
0 1 (10%) 6 (67%) 5 (45%) 18 (56%) 34 (56%) 47 (47%) 39 (53%)
1 9 (90%) 3 (33%) 6 (55%) 14 (44%) 27 (44%) 52 (53%) 35 (47%)

1 n (%)

2 Fisher's exact test

\(~\) \(~\)

Logistic regression to predict priming groups (Positive affect)

(#tab:glm1)
**
Predictor \(b\) 95% CI \(z\) \(p\)
2 Positive affect 0.14 [-0.04, 0.33] 1.53 .125

\(~\) \(~\)

\(~\) \(~\)

Logistic regression to predict priming groups (Negative affect)

(#tab:glm2)
**
Predictor \(b\) 95% CI \(z\) \(p\)
2 Negatif affect -0.07 [-0.22, 0.09] -0.87 .386

\(~\) \(~\)

\(~\) \(~\)

Logistic regression to predict priming groups (Affective Score)

(#tab:glm3)
**
Predictor \(b\) 95% CI \(z\) \(p\)
2 Score 0.08 [-0.03, 0.18] 1.46 .144

\(~\) \(~\)

\(~\) \(~\)

Visual check normality

plotNormalHistogram(base_clean$Price, main = "Price", sub = paste("skewness =", skewness(base_clean$Price, na.rm = TRUE))) 


# print("Check price density by product")
# densityPlot(base_clean$Price, g = base_clean$Product) # by product

plotNormalHistogram(base_clean$Reccomend, main = "Reccomendation", sub = paste("skewness =", round(skewness(base_clean$Reccomend, na.rm = TRUE)),2))



plotNormalHistogram(base_clean$Buy, main = "Probability to buy", sub = 
                      paste("skewness =", round(skewness(base_clean$Buy, na.rm = TRUE),2)))


plotNormalHistogram(base_clean$Ecolo_Eval, main = "Ecologic Evaluation", sub =
                      paste("skewness =", round(skewness(base_clean$Ecolo_Eval, na.rm = TRUE),2)))

\(~\) \(~\)

Model selection for price

Stepwise Model Path Analysis of Deviance Table
Initial Model:
Price ~ Priming * Product * negatif_affect + Priming * Product *
positive_affect + Priming * Product * Decision_mode + Priming *
Product * Age
Final Model:
Price ~ Priming + Product + negatif_affect + positive_affect +
Priming:Product + Priming:negatif_affect + Product:negatif_affect +
Priming:positive_affect + Product:positive_affect + Priming:Product:negatif_affect
Step Df Deviance Resid. Df Resid. Dev AIC
272 1492.897 526.9619
  • Priming:Product:Decision_mode
2 1.2988527 274 1494.196 523.2193
  • Priming:Decision_mode
2 1.1771062 276 1495.373 519.4524
  • Product:Decision_mode
2 2.1924218 278 1497.566 515.8860
  • Decision_mode
2 5.3835937 280 1502.949 512.9482
  • Priming:Product:Age
1 0.0454730 281 1502.995 510.9572
  • Product:Age
1 0.1449535 282 1503.140 508.9857
  • Priming:Product:positive_affect
1 1.2190939 283 1504.359 507.2257
  • Priming:Age
1 1.8189887 284 1506.178 505.5834
  • Age
1 3.3639817 285 1509.542 504.2438

\(~\) \(~\)

Price: Diagnostics Plots for linear model

\(~\) \(~\)

Model selection for Probality to buy

Stepwise Model Path Analysis of Deviance Table
Initial Model:
Buy ~ Priming * Product * negatif_affect + Priming * Product *
positive_affect + Priming * Product * Decision_mode + Priming *
Product * Age
Final Model:
Buy ~ Priming + Product + negatif_affect + Age + Priming:negatif_affect +
Product:negatif_affect
Step Df Deviance Resid. Df Resid. Dev AIC
272 599.1365 256.7185
  • Priming:Product:Decision_mode
2 0.5872826 274 599.7238 253.0085
  • Product:Decision_mode
2 0.8112811 276 600.5351 249.4086
  • Priming:Product:positive_affect
1 0.4022296 277 600.9373 247.6068
  • Priming:Product:Age
1 1.5140058 278 602.4513 246.3516
  • Product:Age
1 0.0234825 279 602.4748 244.3632
  • Priming:Age
1 0.9743727 280 603.4492 242.8415
  • Priming:positive_affect
1 1.9725500 281 605.4217 241.8075
  • Priming:Product:negatif_affect
1 2.1206115 282 607.5423 240.8425
  • Priming:Product
1 1.6186208 283 609.1610 239.6300
  • Product:positive_affect
1 2.2333884 284 611.3944 238.7133
  • positive_affect
1 0.8585097 285 612.2529 237.1286
  • Priming:Decision_mode
2 6.9999567 287 619.2528 236.4936
  • Decision_mode
2 1.1043737 289 620.3572 233.0210

\(~\) \(~\)

Probability to buy: Diagnostics Plots for linear model

\(~\) \(~\)

Model selection for Reccomendation

Stepwise Model Path Analysis of Deviance Table
Initial Model:
Reccomend ~ Priming * Product * negatif_affect + Priming * Product *
positive_affect + Priming * Product * Decision_mode + Priming *
Product * Age
Final Model:
Reccomend ~ Priming + Product + negatif_affect + positive_affect +
Age + Priming:Product + Product:negatif_affect + Priming:positive_affect +
Product:positive_affect + Priming:Age + Product:Age + Priming:Product:positive_affect +
Priming:Product:Age
Step Df Deviance Resid. Df Resid. Dev AIC
272 734.5904 317.0503
  • Priming:Product:negatif_affect
1 0.9862800 273 735.5767 315.4474
  • Priming:negatif_affect
1 0.0347883 274 735.6115 313.4614
  • Priming:Product:Decision_mode
2 9.6592597 276 745.2707 313.3229
  • Priming:Decision_mode
2 1.4877211 278 746.7585 309.9132
  • Product:Decision_mode
2 2.5010516 280 749.2595 306.9029
  • Decision_mode
2 0.3121104 282 749.5716 303.0262

\(~\) \(~\)

Reccomendation: Diagnostics Plots for linear model AFTER

\(~\) \(~\)

Model selection for Ecologic Evaluation

Stepwise Model Path Analysis of Deviance Table
Initial Model:
Ecolo_Eval ~ Priming * Product * negatif_affect + Priming * Product *
positive_affect + Priming * Product * Decision_mode + Priming *
Product * Age
Final Model:
Ecolo_Eval ~ Priming + Product + negatif_affect + positive_affect +
Decision_mode + Age + Priming:Product + Product:negatif_affect +
Priming:positive_affect + Product:positive_affect + Priming:Decision_mode +
Product:Decision_mode + Priming:Age + Product:Age + Priming:Product:Decision_mode +
Priming:Product:Age
Step Df Deviance Resid. Df Resid. Dev AIC
272 358.0852 104.36179
  • Priming:Product:positive_affect
1 0.1295729 273 358.2148 102.46888
  • Priming:Product:negatif_affect
1 0.3551773 274 358.5699 100.76222
  • Priming:negatif_affect
1 0.0511166 275 358.6210 98.80441

\(~\) \(~\)

Ecologic Evaluation: Diagnostics Plots for linear model AFTER

\(~\) \(~\)

Hollistic (Positive) Affect Towards Climate Change
plotNormalHistogram(base_clean$positive_affect, main = "Positive Affect", sub = paste("skewness =", skewness(base_clean$positive_affect, na.rm = TRUE))) 

\(~\) \(~\)

We see a strong right skew of the dristribution.

\(~\) \(~\)

Hollistic (Negative) Affect Towards Climate Change
plotNormalHistogram(base_clean$negatif_affect, main = "Negative Affect", sub = paste("skewness =", skewness(base_clean$negatif_affect, na.rm = TRUE))) 

\(~\) \(~\)

We see a slight left skew of the dristribution.

report::report_packages()
##   - repro (version 0.1.0; Aaron Peikert, Andreas Brandmaier and Caspar van Lissa, 2021)
##   - papaja (version 0.1.0.9997; Aust et al., 2020)
##   - GGally (version 2.1.2; Barret Schloerke et al., 2021)
##   - tinylabels (version 0.2.3; Barth, 2022)
##   - apaTables (version 2.0.8; David Stanley, 2021)
##   - ggplot2 (version 3.3.5; Wickham. ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York, 2016.)
##   - stringr (version 1.4.0; Hadley Wickham, 2019)
##   - forcats (version 0.5.1; Hadley Wickham, 2021)
##   - haven (version 2.4.3; Hadley Wickham and Evan Miller, 2021)
##   - tidyr (version 1.2.0; Hadley Wickham and Maximilian Girlich, 2022)
##   - readr (version 2.1.1; Hadley Wickham, Jim Hester and Jennifer Bryan, 2021)
##   - dplyr (version 1.0.7; Hadley Wickham et al., 2021)
##   - kableExtra (version 1.3.4; Hao Zhu, 2021)
##   - matrixStats (version 0.61.0; Henrik Bengtsson, 2021)
##   - car (version 3.0.12; John Fox and Sanford Weisberg, 2019)
##   - carData (version 3.0.5; John Fox, Sanford Weisberg and Brad Price, 2022)
##   - tibble (version 3.1.6; Kirill Müller and Hadley Wickham, 2021)
##   - purrr (version 0.3.4; Lionel Henry and Hadley Wickham, 2020)
##   - interactions (version 1.1.5; Long JA, 2019)
##   - sjPlot (version 2.8.10; Lüdecke D, 2021)
##   - moments (version 0.14; Lukasz Komsta and Frederick Novomestky, 2015)
##   - R (version 4.0.1; R Core Team, 2020)
##   - rcompanion (version 2.4.1; Salvatore Mangiafico, 2021)
##   - gtsummary (version 1.5.0; Sjoberg DD, Whiting K, Curry M, Lavery JA, Larmarange Reproducible summary tables with the gtsummary package. The R Journal 2021;13:570–80. https://doi.org/10.32614/RJ-2021-053.)
##   - MASS (version 7.3.51.6; Venables et al., 2002)
##   - tidyverse (version 1.3.1; Wickham et al., 2019)